do

您所在的位置:网站首页 do while if do

do

2023-08-18 19:44| 来源: 网络整理| 查看: 265

近期定义了一个宏:

my_macro.h #define SHOW_INFO_MACRO() do { }while(0)

使用时 main.cpp:

#include ...#include "my_macro.h" SHOW_INFO_MACRO(); int main() { ... // 省略具体代码 return 0; }

编译 main.cpp 会报错:

error C2059: 语法错误:“do” error C2143: 语法错误 : 缺少“;”(在“{”的前面) error C2447: “{”: 缺少函数标题(是否是老式的形式表?) error C2059: 语法错误:“while”

其实, 哪怕是 main.cpp

do { } while (); int main() { return 0; } error C2059: 语法错误:“do” error C2143: 语法错误 : 缺少“;”(在“{”的前面) error C2447: “{”: 缺少函数标题(是否是老式的形式表?) error C2059: 语法错误:“while”

在全局上下文上是不能够使用 do、while、if、else 等语句的, 可能是编译器出于 编译连接的错误防范机制, 从而禁止在 全局上下文上禁止直接操作。

还是会有一些情况, 是希望在 进入main 函数之前执行的, 例如创建维护 “很全局化”的对象数据:

#include #include int g_global_value_1; int g_global_value_2; int g_global_value_3; void initialize_globals() { std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3